package com.coc.service;

import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 生产者
 */
@Component
public class RabbitProducer {

    @Autowired
    private AmqpTemplate amqpTemplate;

    /**
     * 普通模式
     * @param message
     */
    public void putMessage(String message){
        Date date = new Date();
        String dateString = new SimpleDateFormat("YYYY-mm-DD hh:MM:ss").format(date);
        System.out.println("[生产者发送] send msg:" + dateString + message);
        // 第一个参数为刚刚定义的队列名称
        amqpTemplate.convertAndSend("queue_test1", dateString +"  -- "+ message);
    }


    /**
     * 广播模式  fanout
     * @param message
     */
    public void putFanoutMessage(String message){
        Date date = new Date();
        String dateString = new SimpleDateFormat("YYYY-mm-DD hh:MM:ss").format(date);
        System.out.println("[生产者发送 fanoutExchange ] send msg:" + dateString + message);
        // 第一个参数为刚刚定义的队列名称
        amqpTemplate.convertAndSend("fanoutExchange","", dateString +"  -- "+ message);
    }


    /**
     * topic A
     * @param message
     */
    public void putTopicA(String message){
        Date date = new Date();
        String dateString = new SimpleDateFormat("YYYY-mm-DD hh:MM:ss").format(date);
        System.out.println("[生产者发送 topic.Exchange ] send msg:" + dateString + message);
        // 第一个参数为刚刚定义的队列名称
        amqpTemplate.convertAndSend("topic.Exchange","topic.msg", dateString +"  -- "+ message);

    }

    /**
     * topic A
     * @param message
     */
    public void putTopicB(String message){
        Date date = new Date();
        String dateString = new SimpleDateFormat("YYYY-mm-DD hh:MM:ss").format(date);
        System.out.println("[生产者发送 topic.Exchange ] send msg:" + dateString + message);
        // 第一个参数为刚刚定义的队列名称
        amqpTemplate.convertAndSend("topic.Exchange","topic.good.msg", dateString +"  -- "+ message);

    }

    /**
     * topic A
     * @param message
     */
    public void putTopicC(String message){
        Date date = new Date();
        String dateString = new SimpleDateFormat("YYYY-mm-DD hh:MM:ss").format(date);
        System.out.println("[生产者发送 topic.Exchange ] send msg:" + dateString + message);
        // 第一个参数为刚刚定义的队列名称
        amqpTemplate.convertAndSend("topic.Exchange","topic.m.z", dateString +"  -- "+ message);

    }


}
